/**
 * 腾讯云COS配置文件
 * 集中管理所有COS相关配置
 * 
 * 注意：
 * 1. SecretId和SecretKey需要有足够的权限访问COS
 * 2. 如果遇到AccessDenied错误，请检查密钥权限或尝试使用匿名访问
 * 3. 配置优先从环境变量中读取
 */

// 从环境变量中读取配置
export const cosConfig = {
  useAnonymous: import.meta.env.VITE_COS_ANONYMOUS === 'true', // 是否使用匿名访问
  SecretId: import.meta.env.VITE_COS_SECRET_ID,
  SecretKey: import.meta.env.VITE_COS_SECRET_KEY,
  Bucket: import.meta.env.VITE_COS_BUCKET || 'mybox-1257251314',
  Region: import.meta.env.VITE_COS_REGION || 'ap-chengdu',
  Prefix: 'www/educoder/file',
  Domain: import.meta.env.VITE_COS_DOMAIN || 'https://mybox-1257251314.cos.ap-chengdu.myqcloud.com',
  cdnDomain: import.meta.env.VITE_COS_CDN_DOMAIN || 'https://cos.roginx.ink'
};

/**
 * 格式化路径，确保路径格式正确
 * @param {String} path 路径
 * @returns {String} 格式化后的路径
 */
export const formatPath = (path) => {
  if (!path) return '';
  
  // 移除开头和结尾的多余斜杠，然后确保结尾有一个斜杠
  const formattedPath = path.replace(/^\/+/, '').replace(/\/+$/, '') + '/';
  console.log('格式化路径:', { 原始路径: path, 格式化后: formattedPath });
  return formattedPath;
};

// 构建完整的COS路径
export const buildFullPath = (basePath, relativePath) => {
  const base = formatPath(basePath);
  const relative = formatPath(relativePath);
  
  return base + relative;
};

// 获取COS文件的公共URL
export const getCosFileUrl = (key, config = cosConfig) => {
  if (config.cdnDomain) {
    // 如果配置了CDN域名，则使用CDN域名
    return `${config.cdnDomain}/${key}`;
  } else if (config.Domain) {
    // 如果有自定义域名，直接使用
    return `${config.Domain}/${key}`;
  }
  
  // 否则使用COS默认域名
  return `https://${config.Bucket}.cos.${config.Region}.myqcloud.com/${key}`;
};

export default cosConfig; 